package datastructures;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;

import datastructures.*;

public class CityInfo {

	public HashMap<String, ArrayList<String>> nachfolger = new HashMap<String, ArrayList<String>>();
	// ArrayList<MyNode> cities = new ArrayList<MyNode>();
	public HashMap<String, Koordinate> koords = new HashMap<String, Koordinate>();

	private void generateKoordList() {
		koords.put("kiel", new Koordinate(50, 0));
		koords.put("luebeck", new Koordinate(75, 25));
		koords.put("bremen", new Koordinate(10, 60));
		koords.put("hamburg", new Koordinate(50, 50));
		koords.put("berlin", new Koordinate(95, 75));
		koords.put("bonn", new Koordinate(10, 110));
		koords.put("hannover", new Koordinate(50, 100));
		koords.put("leipzig", new Koordinate(70, 125));
		koords.put("dresden", new Koordinate(100, 150));
		koords.put("frankfurt", new Koordinate(30, 140));
		koords.put("stuttgart", new Koordinate(20, 170));
		koords.put("muenchen", new Koordinate(70, 175));
	}

	private void generateNachfolgerListe() {

		ArrayList<String> kielNachfolger = new ArrayList<String>(); // kiel
		kielNachfolger.addAll(Arrays.asList("luebeck", "hamburg"));

		ArrayList<String> luebeckNachfolger = new ArrayList<String>(); // Luebeck
		luebeckNachfolger.addAll(Arrays.asList("kiel", "hamburg", "berlin"));

		ArrayList<String> bremenNachfolger = new ArrayList<String>(); // Bremen
		bremenNachfolger.addAll(Arrays.asList("hamburg", "bonn", "hannover"));

		ArrayList<String> hamburgNachfolger = new ArrayList<String>(); // Hamburg
		hamburgNachfolger.addAll(Arrays.asList("kiel", "luebeck", "bremen",
				"hannover", "berlin"));

		ArrayList<String> berlinNachfolger = new ArrayList<String>(); // Berlin
		berlinNachfolger.addAll(Arrays.asList("luebeck", "hamburg", "hannover",
				"leipzig", "dresden"));

		ArrayList<String> bonnNachfolger = new ArrayList<String>(); // Bonn
		bonnNachfolger.addAll(Arrays.asList("bremen", "hannover", "frankfurt"));

		ArrayList<String> hannoverNachfolger = new ArrayList<String>(); // Hannover
		hannoverNachfolger.addAll(Arrays.asList("hamburg", "berlin", "leipzig",
				"muenchen", "frankfurt", "bonn", "bremen"));

		ArrayList<String> leipzigNachfolger = new ArrayList<String>(); // Leipzig
		leipzigNachfolger
				.addAll(Arrays.asList("hannover", "berlin", "dresden"));

		ArrayList<String> dresdenNachfolger = new ArrayList<String>(); // Dresden
		dresdenNachfolger.addAll(Arrays.asList("leipzig", "berlin"));

		ArrayList<String> frankfurtNachfolger = new ArrayList<String>();// Frankfurt
		frankfurtNachfolger.addAll(Arrays.asList("bonn", "hannover",
				"stuttgart"));

		ArrayList<String> stuttgartNachfolger = new ArrayList<String>();// Stuttgart
		stuttgartNachfolger.addAll(Arrays.asList("frankfurt", "muenchen"));

		ArrayList<String> muenchenNachfolger = new ArrayList<String>(); // Muenchen
		muenchenNachfolger.addAll(Arrays.asList("stuttgart", "hannover"));

		nachfolger.put("kiel", kielNachfolger);
		nachfolger.put("luebeck", luebeckNachfolger);
		nachfolger.put("bremen", bremenNachfolger);
		nachfolger.put("hamburg", hamburgNachfolger);
		nachfolger.put("berlin", berlinNachfolger);
		nachfolger.put("bonn", bonnNachfolger);
		nachfolger.put("hannover", hannoverNachfolger);
		nachfolger.put("leipzig", leipzigNachfolger);
		nachfolger.put("dresden", dresdenNachfolger);
		nachfolger.put("frankfurt", frankfurtNachfolger);
		nachfolger.put("stuttgart", stuttgartNachfolger);
		nachfolger.put("muenchen", muenchenNachfolger);
	}

	public CityInfo() {
		// generateCityMap();
		generateKoordList();
		generateNachfolgerListe();
	}

	public HashMap<String, ArrayList<String>> getMap() {
		return nachfolger;
	}
}
